1. Principles and Practices, Project Management
In the first week we worked on defining the final project and getting familiar with the documentation process.
Principles and Practices
Weareable Wireless Robotic Arm Controller
The goal of this project is to develop a wearable control interface capable of teleoperating a robotic arm in real-time. By integrating motion tracking and flex sensing, the system allows for an intuitive, human-like control experience, bridging the gap between user intent and mechanical execution. Beyond simple movement, this technology aims to decentralize the operator from the machine, allowing for complex tasks to be performed at a safe distance or in specialized environments.
Technical Objectives
- Integrate an MPU6050 IMU to capture 3D spatial orientation and flex sensors to monitor finger articulation.
- Implement a peer-to-peer communication protocol using the native 2.4GHz radio of the ESP32 to minimize data packet overhead.
- Use the XIAO ESP32-C3 for its compact footprint on the wearable side and an ESP32 DevKit V1 for the heavy-duty PWM servo control on the robotic side.
- Develop a software algorithm to filter raw sensor noise and map human degrees of freedom to the mechanical limits of the arm.
Challenges and Technical Hurdles
The greatest technical challenge is achieving a near-zero lag between the user’s hand and the robot’s response. The data from the MPU6050 can be noisy so the implementation of digital filters (like a Complementary filter) is essential to smooth out the motion without introducing additional delay. Since the controller is a "Smart Glove," it must be comfortable for long-term use so the XIAO ESP32-C3 and the battery must be positioned to avoid straining the user's wrist. Another challenge lies in creating a mounting system that ensures the flex sensors stay aligned with the knuckles during repeated bending, providing consistent resistance readings.
Project Management
Setup Guide: Cloning my GitLab Repository
To begin working on my website, I followed this initial workflow to link my local environment with the Fab Academy remote repository:
- Git Installation: First, I downloaded and installed Git on my computer to enable version control directly from the terminal. Git - Install
- Workspace Preparation: I created a dedicated folder on my device where all the website files and assets will be organized and stored.
-
Linking with GitLab: On the Fab Academy GitLab page, I copied the project link under the "Clone with HTTPS" option. This link acts as the "cloud" address for my site.
-
Cloning via VS Code: I opened my local folder in Visual Studio Code. Using the integrated terminal, I executed the cloning command:
git clone https://gitlab.fabcloud.org... -
Navigating to the Directory: Once Git finished downloading the repository copy, I used the
cd(change directory) command to enter my project folder:cd .\your-name\
It is now possible to modify the repository locally from your device. To do that we will use the following git commands in the Visual Studio Code terminal.
git status: Used to check the current state of my files.git add .: Adds all changes to the staging area.git commit -m "My Message": Records the changes with a descriptive note. Every time you make a commit, a commit will be generated in gitlab. It is advisable to make sure that this commit is completed correctly. This is represented with a little green check mark indicating that everything went well.git push: Uploads local changes to the GitLab server.git pull: Updates the local repository with changes from the server.git reset --soft HEAD~1: Undoes the last commit while preserving the work.
Every time a change is made to the project, the following sequence must be executed in the terminal to update the live site:
-
Stage:
git add .
Prepares all modified files to be included in the next commit. -
Commit:
git commit -m "Your message here"
Saves the changes locally with a descriptive note about what was done. -
Push:
git push
Uploads the local commits to the GitLab cloud, making the changes public.
Core Project Files
-
index.html: The main entry point and structure of the website. As a markup language based on tags (
<>), it defines the content and hierarchy of the page. - style.css: The stylesheet used to define the visual appearance. It is a language primarily used to provide styles and aesthetics to the HTML structure.
-
.gitlab-ci.yml: A critical configuration file that automates the Continuous Integration and Deployment (CI/CD) process. It instructs GitLab on how to build and publish the website automatically every time a
git pushis executed.
Building a website involves using HTML, a markup language based on tags (<>) that defines the site's structure, and CSS, which is used to apply visual styles. To manage these files effectively, Git is utilized as a version control system.
We are now ready to start filling out the repository.